A storage apparatus that utilizes Thin Provisioning (also called Dynamic Provisioning) is known. This storage apparatus is an open system storage apparatus (hereinafter, OP storage). The OP storage generally provides a virtual logical volume (hereinafter, virtual volume) configured from a plurality of virtual pages, and comprises a pool configured from a plurality of actual pages. In the case of a write of user data (data that a host apparatus (for example, an application program executed on the host apparatus) uses) to a virtual page, the storage apparatus allocates an actual page from the pool to the write-destination virtual page, and writes the write-targeted user data to the allocated actual page. The virtual page is a virtual storage area, and the actual page is a substantive storage area.
There are cases in which an actual page is allocated to a virtual page for user data that is not needed by the host apparatus, and, in addition, cases in which this unnecessary user data is written to this actual page.
One example of such a case is a copy of user data from a copy-source storage area to the virtual volume. The copy-source storage area, for example, is another logical volume (a logical volume either inside or outside of the OP storage comprising the virtual volume) or a magnetic tape. In accordance with this copy, data from the entire copy-source storage area is written to the virtual volume. For this reason, in a case where user data that is not needed by the host apparatus is included in this data, this unnecessary user data is also a write target with respect to the virtual volume. Therefore, an actual page is allocated to the virtual page, and the unnecessary user data is written to the actual page.
When an actual page is allocated to a virtual page for unnecessary user data, the actual page from the pool is used ineffectually.
In a case where a read request that specifies an address related to a virtual page to which an actual page has not been allocated is received from the host apparatus, the OP storage, for example, returns to this host apparatus data that has been configured such that all the bits are “0”.
The OP storage disclosed in Patent Literature 1 makes a determination (hereinafter, the zero pattern determination) as to whether or not all the bits inside the actual page that is allocated to the virtual page are “0”, and in a case where the result of the zero pattern determination is affirmative, cancels the allocation of this actual page to the virtual page.
Since the OP storage generally writes the user data from the start of the actual page, an actual page that is only storing unnecessary user data can be identified in accordance with the above-mentioned zero pattern determination.